import { MidwayConfig } from '@midwayjs/core';
import { createRedisStore } from '@midwayjs/cache-manager';

export default {
    keys: 'xyt-server-secret-key-2025',
    koa: {
        port: 5277,
    },
    //数据库配置
    typeorm: {
        dataSource: {
            default: {
                type: 'mysql',
                host: 'localhost', //数据库地址
                port: 3306, //数据库端口
                username: 'root', //数据库用户名
                password: '1044350582', //数据库密码
                database: 'xyt', //数据库名称
                synchronize: false, // 是否自动同步数据库结构
                logging: false, // 是否开启日志
                entities: [
                    'entity', // 特定目录
                    '**/*.entity.{j,t}s', // 通配加后缀匹配
                ],
            },
        },
    },

    //jwt 配置
    jwtConfig: {
        secret: 'xyt-jwt-secret-key-2025',
        expiresIn: '1d', // 过期时间 一天
    },

    //缓存配置
    cacheManager: {
        clients: {
            default: {
                store: 'memory',
                options: {
                    ttl: 259200000, // 设置缓存的过期时间为 3 天
                    refreshThreshold: 1000 * 60 * 60 * 24, // 设置刷新阈值为 1 天
                },
            },
            redis: {
                store: createRedisStore('redis://localhost:6379'), // 使用 createRedisStore 方法创建 Redis 存储
                options: {
                    ttl: 259200000, // 设置缓存的过期时间为 3 天
                    refreshThreshold: 1000 * 60 * 60 * 24, // 设置刷新阈值为 1 天
                },
            },
        },
    },
    //redis 配置
    redis: {
        client: {
            port: 6379, // Redis port
            host: 'localhost', // Redis host
            password: '',
            db: 0,
            keepAlive: 10000,
        },
    },

    cors: {
        origin: '*', // 跨域
    },
} as MidwayConfig;